//public class HashBuck {
//    static class Node<K,V> {
//        public K key;
//        public V val;
//        public Node next;
//
//        public Node(K key, V val) {
//            this.key = key;
//            this.val = val;
//        }
//    }
//
//    //默认创建一个数组，用来存储节点
////    public Node<K,V>[] array = (Node<K, V>[]) new Node[10];
//    //记录当前有多少个元素的变量 useSize
//    public int useSize;
//    //负载因子
//    public static final double LOAD_FACTOR = 0.75;
//
//    /*
//    存入一个键值对，解决冲突使用开散列或者说哈希桶
//     */
//    public void push(int key, int val) {
//        Node node = new Node(key, val);
//        //1.找到位置（在数组中的下标）
//        int index = key % array.length;
//        //2.遍历数组，判断是不是有相同key值的结点已经在桶里了
//        Node cur = array[index];
//        while (cur != null) {
//            if (cur.key == key) {
//                //如果有key值相同的结点，把它的val值更新一下，return
//                cur.val = val;
//                return;
//            }
//            cur = cur.next;
//        }
//        //3.如果没有相同的结点，则把结点的存入哈希桶中，使用头插法
//        node.next = array[index];
//        array[index] = node;
//        useSize++;
//        //4.判断是否超出负载因子的限制，如果超过，需要重写哈希
//        if (doLoadFactor() > 0.75) {
//            //重写哈希
//            reSize();
//        }
//    }
//
//    //重写哈希
//    private void reSize() {
//        Node[] newArray = new Node[array.length * 2];
//        //处理重写哈希
//        for (int i = 0; i < array.length; i++) {
//            Node cur = array[i];
//            while(cur != null){
//                //记录在新的哈希表的位置
//                int index = cur.key % newArray.length;
//                //记录下来之前的cur.next
//                Node curNext = cur.next;
//                //进行头插法，插入到新数组中
//                cur.next = newArray[index];
//                newArray[index] = cur;
//                cur = curNext;
//            }
//        }
//        array = newArray;
//    }
//
//    public int get(int key){
//        //1.找到位置
//        int index = key % array.length;
//        //2.遍历数组
//        Node cur = array[index];
//        while(cur != null){
//            if(cur.key == key){
//                return cur.val;
//            }
//            cur = cur.next;
//        }
//        return -1;
//    }
//
//    //计算负载因子
//    private double doLoadFactor() {
//        return useSize * 1.0 / array.length;
//    }
//}
